import java.util.*;
/**
 * @author LKQ
 * @date 2022/5/1 13:31
 * @description 考虑s[i]添加到s[i-1]为末尾的子串的末尾，那么添加后，如果s[i]之前没有遇到过，那么每个子串引力都会 +1，如果s[i] 在上次出现过，假设为 j
 * 那么 s[0..i-1] s[1..i-1] s[j..i-1]的引力值都不会变化，只有 i-j-1个子串引力值会 + 1，而且 + s[i]单独组成的子串，总共增加 i-j 引力值
 */
public class Solution {
    public static void main(String[] args) {

    }
    public long appealSum(String s) {
        long ans = 0L, sumG = 0L;
        int[] pos = new int[26];
        Arrays.fill(pos, -1);
        for (int i = 0; i < s.length(); i++) {
            int c = s.charAt(i) - 'a';
            sumG += i - pos[c];
            ans += sumG;
            pos[c] = i;
        }
        return ans;
    }
}
